package com.example.candiates.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.candiates.domain.InterviewSchedule;
import com.example.candiates.domain.InterviewQuestion;
import com.example.candiates.dto.InterviewScheduleDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface CandidateInterviewScheduleMapper extends BaseMapper<InterviewSchedule> {
    
    /**
     * 获取候选人最新的面试安排
     * @param candidateId 候选人ID
     * @return 面试安排信息
     */
    InterviewSchedule getLatestScheduleByCandidateId(@Param("candidateId") Integer candidateId);
    
    /**
     * 获取面试安排及其关联的题目
     * @param candidateId 候选人ID
     * @return 面试安排及题目信息
     */
    InterviewScheduleDTO getScheduleWithQuestions(@Param("candidateId") Integer candidateId);
    
    /**
     * 根据题目集ID列表获取题目
     * @param setIds 题目集ID列表
     * @return 题目列表
     */
    List<InterviewQuestion> getQuestionsBySetIds(@Param("setIds") List<Integer> setIds);

    List<InterviewSchedule> getAllSchedules();

    InterviewScheduleDTO getFullInterviewDetailByPhone(@Param("phone") String phone);
} 